pull-local: Don't call g_hash_table_init() on a NULL hash
authorColin Walters <walters@verbum.org>
Sat, 23 Feb 2013 16:15:19 +0000 (11:15 -0500)
committerColin Walters <walters@verbum.org>
Sat, 23 Feb 2013 16:15:19 +0000 (11:15 -0500)
Not sure why this wasn't crashing before.

src/ostree/ot-builtin-pull-local.c

index 9fe8a37799cc1c49a74441f5a70d740b89c199c9..36719eaf6c601f5075725f127d402ebe0b2c4350 100644 (file)
@@ -241,22 +241,28 @@ ostree_builtin_pull_local (int argc, char **argv, GFile *repo_path, GError **err
 
   source_objects = ostree_traverse_new_reachable ();
 
-  g_hash_table_iter_init (&hash_iter, refs_to_clone);
-  while (g_hash_table_iter_next (&hash_iter, &key, &value))
+  if (refs_to_clone)
     {
-      const char *checksum = value;
-
-      if (!ostree_traverse_commit (data->src_repo, checksum, 0, source_objects, cancellable, error))
-        goto out;
+      g_hash_table_iter_init (&hash_iter, refs_to_clone);
+      while (g_hash_table_iter_next (&hash_iter, &key, &value))
+        {
+          const char *checksum = value;
+          
+          if (!ostree_traverse_commit (data->src_repo, checksum, 0, source_objects, cancellable, error))
+            goto out;
+        }
     }
 
-  g_hash_table_iter_init (&hash_iter, commits_to_clone);
-  while (g_hash_table_iter_next (&hash_iter, &key, &value))
+  if (commits_to_clone)
     {
-      const char *checksum = key;
+      g_hash_table_iter_init (&hash_iter, commits_to_clone);
+      while (g_hash_table_iter_next (&hash_iter, &key, &value))
+        {
+          const char *checksum = key;
 
-      if (!ostree_traverse_commit (data->src_repo, checksum, 0, source_objects, cancellable, error))
-        goto out;
+          if (!ostree_traverse_commit (data->src_repo, checksum, 0, source_objects, cancellable, error))
+            goto out;
+        }
     }
 
   if (!ostree_repo_prepare_transaction (data->dest_repo, FALSE, cancellable, error))